Embodiments of the present disclosure relate generally to the field of automation control and monitoring systems. More particularly, embodiments of the present disclosure relate to techniques for dynamic and adaptable automation control.
A wide range of applications exist for automation control and monitoring systems, particularly in industrial settings. Such applications may include the powering of a wide range of actuators, such as valves, electric motors, and so forth, and the collection of data via sensors. Typical automation control and monitoring systems may include one or more components, such as: programming terminals, automation controllers, input/output (I/O) modules, and/or human-machine interface (HMI) terminals.
The human machine interfaces or “HMIs” are commonly employed for monitoring or controlling various processes. The HMIs may read from or write to specific registers such that they can reflect the operating state of various machines, sensors, processes, and so forth. The interfaces can also write to registers and memories such that they can, to some extent, control the functions of the process. In monitoring functions alone, little or no actual control is executed. In many other settings, similar devices are employed, such as in automobiles, aircraft, commercial settings, and a host of other applications. In many applications, the interface may not communicate with a remote device or process, but may be operated in a stand-alone manner.
In these interface devices, the objects used in the interface may correlate to different controls, monitors, or any other parameter of an industrial automation device. Some of these objects may have visual representations on the interface devices, while other objects may not be visually represented but may be accessible for configuration and programming by a user. A user may desire to manipulate these objects, such as by creating new objects, copying objects, editing objects, etc., to create and customize an interface.
Each of the components in an automation control and monitoring system may make use of state information of one or more objects (e.g., control programs, tags, module configuration, and HMI screens) of the control and monitoring system. From time to time, the components may be used to modify the state information of the objects. Thus, the components may need to communicate the change of states to the control and monitoring system, such that the other components may be apprised of state-changes to the objects of the control and monitoring system. Indeed in some cases the change of states may include the addition or deletion of certain objects within the control and monitoring system. Traditional approaches to communicate the state of a control and monitoring system object, for example, have included providing an entire state of the object to the control and monitoring system. It is now recognized that such approaches are sometimes inefficient, providing more information than is necessary to describe a changed state of objects within the control and monitoring system. Providing the entire state of an object may result in bandwidth inefficiencies in communicating the state data as well as processing inefficiencies in consuming and using the data. Further, it is now recognized that such approaches of providing full state data may, in some cases, provide increased potential for inadvertent overwriting of other state changes provided in the control and monitoring system.
Further, traditional approaches have relied upon centralized control and monitoring. For example, traditional control and monitoring systems have relied upon centralized data models that describe the control system. The reliance on centralized data models may result in processing inefficiencies and increased dependencies on components (e.g., a controller) hosting the centralized data models.